#pragma once
#include <string>

class TestCallback{
public:
  virtual ~TestCallback(){}
  virtual void onCall(const std::string& str) = 0;
};

class Test{
public:
  Test(TestCallback* callback)
    :m_callback(callback)
  {
  }

  ~Test(){
  }

  const std::string& getStr(){
    return m_str;
  }

  void setStr(const std::string& str){
    m_str = str;
  }

  void testCallback(){
    m_callback->onCall(m_str);
  }
private:
  std::string m_str;
  TestCallback* m_callback;
};




